// ISecurityUnitManager.aidl
package com.sgcc.pda.hw;
import com.sgcc.pda.hw.ReturnResult;
// Declare any non-default types here with import statements

interface IProtocol376Manager {

        /**
         * 读取集中器日冻结正向有功电能示值（AFN=0D;FN=161）
         * @param zdljdz   终端逻辑地址
         * @param pn       测量点号
         * @param date     要读取的日期（格式：年月日  180305--18年3月5日）
         * @return   ReturnResult  :int code  0 成功  其他失败
         *                       :List<String> datas（code==0）:   size==0
         *                                      0:集中器返回帧的16进制字符串
         *                                      1:解析后描述的字符串(isAnalysis==true)
         *
         *
         *
         *                     :List<String> datas(code==其他):（size==0）
         *                                    错误描述
         */
        ReturnResult readJzqFreezeData(String zdljdz,String pn,String date);

        /**
         * 集中器透明转发功能：对电表进行召测（AFN=10;FN=1）
         * @param zdljdz   终端逻辑地址
         * @param meterAddress       召测的表地址
         * @param meter_07       是否是07规约表
         * @return   ReturnResult  :int code  0 成功  其他失败
         *                       :List<String> datas（code==0）:   size==0
         *                                      0:集中器返回帧的16进制字符串
         *                                      1:解析后描述的字符串(isAnalysis==true)：返回当前日期
         *
         *
         *
         *                     :List<String> datas(code==其他):（size==1）
         *                                      0：错误描述
         */
        ReturnResult jzqZhaoCeMeterDate(String zdljdz,String meterAddress,boolean meter_07);


        /**
         * 终端电量下发功能
         * @param zdljdz   终端逻辑地址
         * @param daDt      数据单元标识
         * @param orderNum 充电量的订单号（订单号与前一次的订单号不能相同，否则执行失败）
         * @param buyValue 购电量的值（字符串为最高位到百万位的整数）
         * @param tiaoZhaValue  跳闸门限值
         * @param warningValue  报警门限值
         * @param fresh  刷新标志（true：执行刷新电量  false：执行追加电量）
         * @return   ReturnResult  :int code  0 成功  其他失败
         *                       :List<String> datas（code==0）:   size==0
         *                                      0:集中器返回帧的16进制字符串
         *                                      1:解析后描述的字符串(isAnalysis==true)：返回当前日期
         *
         *
         *
         *                     :List<String> datas(code==其他):（size==1）
         *                                      0：错误描述
         */
        ReturnResult zdRechargeElectricity(String zdljdz,String daDt,String orderNum,String buyValue,String tiaoZhaValue,String warningValue,boolean fresh);

        /**
         * 读取集中器IP和Apn
         * @param zdljdz   终端逻辑地址
         * @return   ReturnResult  :int code  0 成功  其他失败
         *                       :List<String> datas（code==0）:   size==0
         *                                      0:集中器返回帧的16进制字符串
         *                                      1:主站ip
         *                                      2.主站备用ip
         *                                      3.apn名称
         *
         *
         *                     :List<String> datas(code==其他):（size==1）
         *                                      0：错误描述
         */
        ReturnResult readJzqIpAndApn(String zdljdz);
        /**
         * 设置集中器IP和Apn
         * @param zdljdz   终端逻辑地址
         * @param ip   主站ip
         * @param bip   主站备用ip
         * @param apn   apn名称
         * @return   ReturnResult  :int code  0 成功  其他失败
         *                       :List<String> datas（code==0）:   size==0
         *                                      0:集中器返回帧的16进制字符串
         *
         *
         *                     :List<String> datas(code==其他):（size==1）
         *                                      0：错误描述
         */
        ReturnResult setJzqIpAndApn(String zdljdz,String ip,String bip,String apn);
       /**
        * 读取集中器心跳周期
        * @param zdljdz   终端逻辑地址
        * @return   ReturnResult  :int code  0 成功  其他失败
        *                       :List<String> datas（code==0）:   size==0
        *                                      0:集中器返回帧的16进制字符串
        *                                      1：集中器心跳周期byte数组的16进制
        *                                      2：集中器心跳周期(即byte[5])
        *
        *
        *                     :List<String> datas(code==其他):（size==1）
        *                                      0：错误描述
        */
        ReturnResult readJzqHeartCycle(String zdljdz);
        /**
         * 设置集中器心跳周期（需要先读取在设置并将读取返回的心跳周期的byte数据的16进制传入即mResultHeartCircle）
         * @param zdljdz   终端逻辑地址
         * @param resultHeartCircle   从终端读取的的心跳周期的byte数据的16进制
         * @param heartTime   心跳周期
         * @return   ReturnResult  :int code  0 成功  其他失败
         *                       :List<String> datas（code==0）:   size==0
         *                                      0:集中器返回帧的16进制字符串
         *
         *
         *                     :List<String> datas(code==其他):（size==1）
         *                                      0：错误描述
         */
        ReturnResult setJzqHeartCycle(String zdljdz,String resultHeartCircle,String heartTime);
        /**
         * 读取集中器上行通讯方式
         * @param zdljdz   终端逻辑地址
         * @return   ReturnResult  :int code  0 成功  其他失败
         *                       :List<String> datas（code==0）:   size==0
         *                                      0:集中器返回帧的16进制字符串
         *                                      1：集中器上行通讯协议byte数组的16进制
         *                                      2：tcp或udp（"12":tcp  "13":udp）
         *                                      3.连接方式("15":混合模式  "16"客户机模式 "17"服务器模式)
         *                                      4.在线方式（"19"：永久在线 "20"：被动激活 "21" :时段在线）
         *
         *
         *                     :List<String> datas(code==其他):（size==1）
         *                                      0：错误描述
         */
        ReturnResult readJzqUpConnectWay(String zdljdz);
        /**
         * 设置集中器上行通讯方式
         * @param zdljdz   终端逻辑地址
         * @param mBytesUpConnect   集中器上行通讯协议byte数组的16进制
         * @param tcpOrUdp          tcp或udp（"12":tcp  "13":udp）
         * @param connectModel      连接方式("15":混合模式  "16"客户机模式 "17"服务器模式)
         * @param OnLineModel       在线方式（"19"：永久在线 "20"：被动激活 "21" :时段在线）
         * @return   ReturnResult  :int code  0 成功  其他失败
         *                       :List<String> datas（code==0）:   size==0
         *                                      0:集中器返回帧的16进制字符串
         *
         *
         *                     :List<String> datas(code==其他):（size==1）
         *                                      0：错误描述
         */
        ReturnResult setJzqUpConnectWay(String zdljdz,String mBytesUpConnect,String tcpOrUdp,String connectModel,String OnLineModel);

        /**
         * 集中器校时
         * @param zdljdz   终端逻辑地址
         * @return   ReturnResult  :int code  0 成功  其他失败
         *                       :List<String> datas（code==0）:   size==0
         *                                      0:集中器返回帧的16进制字符串
         *
         *
         *                     :List<String> datas(code==其他):（size==1）
         *                                      0：错误描述
         */
        ReturnResult setJzqTime(String zdljdz);

        /**
         * 读取集中器时间
         * @param zdljdz   终端逻辑地址
         * @return   ReturnResult  :int code  0 成功  其他失败
         *                       :List<String> datas（code==0）:   size==0
         *                                      0:集中器返回帧的16进制字符串
         *                                      1:集中器时间
         *
         *                     :List<String> datas(code==其他):（size==1）
         *                                      0：错误描述
         */
        ReturnResult readJzqTime(String zdljdz);

            /**
             * 集中器助手 发送数据 sendData0D
             *
             * @param Id:afn_0D_group_1_fn_5 正向有功电能量(日冻结)       afn_0D_group3_fn_21 正向有功电能量（月冻结）
             *           afn_0D_group4_fn_26 日总及分相最大需量及发生时间 afn_0D_group4_fn_27 日电压统计数据 			  afn_0D_group4_fn_28 日不平衡度越限累计时间
             *           afn_0D_group4_fn_29 日电流越限统计               afn_0D_group5_fn_34 月总及分相最大需量及发生时间 afn_0D_group5_fn_35 月电压统计数据
             *           afn_0D_group5_fn_36 月不平衡度越限累计时间       afn_0D_group5_fn_37 月电流越限统计 			  afn_0D_group6_fn_42 日、月电容器累计补偿的无功电能量
             *           afn_0D_group6_fn_43 日功率因数区段累计时间       afn_0D_group6_fn_44 月功率因数区段累计时间
             *           afn_0D_group7_fn_50 终端日控制统计数据           fn_0D_group7_fn_52  终端月控制统计数据
             *           afn_0D_group8_fn_58 总加组日累计有功电能量       afn_0D_group8_fn_61 总加组月累计有功电能量
             *           afn_0D_group10_fn_73 总加组有功功率曲线 		 afn_0D_group10_fn_75总加组有功电能量曲线 		  afn_0D_group11_fn_81 有功功率曲线
             *           afn_0D_group11_fn_82 A相有功功率曲线 			 afn_0D_group11_fn_83 B相有功功率曲线 			  afn_0D_group11_fn_84 C相有功功率曲线
             *           afn_0D_group12_fn_89 A相电压曲线 				 afn_0D_group12_fn_90 B相电压曲线 				  afn_0D_group12_fn_91 C相电压曲线
             *           afn_0D_group12_fn_92 A相电流曲线 				 afn_0D_group12_fn_93 B相电流曲线 				  afn_0D_group12_fn_94 C相电流曲线
             *           afn_0D_group13_fn_97 正向有功总电能量曲线 		 afn_0D_group13_fn_101 正向有功总电能示值曲线     afn_0D_group14_fn_105 总功率因数曲线
             *           afn_0D_group14_fn_106 A相功率因数曲线 			 afn_0D_group14_fn_107 B相功率因数曲 			  afn_0D_group14_fn_108 C相功率因数曲线
             *           afn_0D_group14_fn_109 电压相位角曲线 			 afn_0D_group14_fn_110 电流相位角曲线             afn_0D_group18_fn_138 直流模拟量数据曲线
             *           afn_0D_group20_fn_153 日冻结分相正向有功电能示值 afn_0D_group20_fn_157 月冻结分相正向有功电能示值
             *           afn_0D_group22_fn_169 正向有功电能示值(日冻结）  afn_0D_group24_fn_189 正向有功最大需量及发生时间（日冻结）
             * @param Pn 信息点标识pn对应于不同信息类标识Fn可以是测量点号、总加组号、控制轮次、直流模拟量端口号、任务号
             * @param jzqLogicAddress 集中器逻辑地址
             * @param getDataType -1：表示无参数。0:tdd 日数据格式格式  1：tdm：月数据格式  2：tdc  曲线数据格式  3：电能表通信参数自动维护功能开启与关闭（AFn=05，fn=149）  4:搜索到的电表信息数据单元格式（AFN=0C ,fn=13）  5：购电量下发的数据单元格式
             * @param chooseDate      日期时间
             *
             * @return   ReturnResult  :int code  0 成功  其他失败
             *                       :List<String> datas（code==0）:   size==0
             *                                      0:集中器返回帧的16进制字符串
             *                                      1:集中器返回值
             *                     :List<String> datas(code==其他):（size==1）
             *                                      0：错误描述
             */
        ReturnResult sendData0D(String Id, String Pn, String jzqLogicAddress, int getDataType, String chooseDate);

            /*集中器 发送数据 sendData05
             *@param Id:afn_05_group7_fn_149 电能表通信参数自动维护功能开启与关闭
             * @param Pn 信息点标识pn对应于不同信息类标识Fn可以是测量点号、总加组号、控制轮次、直流模拟量端口号、任务号
             * @param jzqLogicAddress 集中器逻辑地址
             * @param status 维护状态值
             *
             * @return   ReturnResult  :int code  0 成功  其他失败
             *                       :List<String> datas（code==0）:   size==0
             *                                      0:集中器返回帧的16进制字符串
             *                                      1:集中器返回值
             *                     :List<String> datas(code==其他):（size==1）
             *                                      0：错误描述
             */
         ReturnResult sendData05(String Id, String Pn, String jzqLogicAddress, String status);

             /*集中器 发送数据 sendData0C
              *@param Id:afn_0C_group2_fn_13 搜索到的电表信息 afn_0C_group21_fn_161 电能表远程控制通断电状态及记录 afn_0C_group3_fn_23 终端当前剩余电量（费）
              * @param Pn 信息点标识pn对应于不同信息类标识Fn可以是测量点号、总加组号、控制轮次、直流模拟量端口号、任务号
              * @param jzqLogicAddress 集中器逻辑地址
              *
              * @return   ReturnResult  :int code  0 成功  其他失败
              *                       :List<String> datas（code==0）:   size==0
              *                                      0:集中器返回帧的16进制字符串
              *                                      1:集中器返回值
              *                     :List<String> datas(code==其他):（size==1）
              *                                      0：错误描述
              */
          ReturnResult sendData0C(String Id, String Pn, String jzqLogicAddress);

              /*集中器 发送数据 sendData04
               * @param id:afn_04_group6_fn_47 购电量（费）控参数(电量下发)
               * @param Pn 信息点标识pn对应于不同信息类标识Fn可以是测量点号、总加组号、控制轮次、直流模拟量端口号、任务号
               * @param jzqLogicAddress 集中器逻辑地址
               * @param List<String> afn04num数据集  <1.工单号 2.购电量(费)值 3.报警门限值 4跳闸门限值 5是否刷新标志(boolean类型)   (5个都不可为空)
               *
               * @return   ReturnResult  :int code  0 成功  其他失败
               *                       :List<String> datas（code==0）:   size==0
               *                                      0:集中器返回帧的16进制字符串
               *                                      1:集中器返回值
               *                     :List<String> datas(code==其他):（size==1）
               *                                      0：错误描述
               */
           ReturnResult sendData04(String Id, String Pn, String jzqLogicAddress,in List<String> afn04num);

                /*集中器 发送数据 onInfraPostExecute
                *@param Afn
                * @param requestCode (sendData0D,sendData05,sendData0C,sendData04) 对应其中相应的id
                * @param receiveData (sendData0D,sendData05,sendData0C,sendData04)成功返回的报文内容
                *
                * @return   ReturnResult  :int code  0 成功  其他失败
                *                       :List<String> datas（code==0）:   size==0
                *                                      0:集中器返回帧的16进制字符串
                *                                      1:集中器返回值
                *                     :List<String> datas(code==其他):（size==1）
                *                                      0：错误描述
                */
           ReturnResult onInfraPostExecute(String Afn,String requestCode,in byte[] receiveData);

                /**
                * 读取集中器用户名和密码
                *
                * @param zdljdz 终端逻辑地址
                * @return ReturnResult  :int code  0 成功  其他失败
                * :List<String> datas（code==0）:   size==3
                * 0:集中器返回帧的16进制字符串
                * 1:用户名
                * 2.密码
                * :List<String> datas(code==其他):（size==1）
                * 0：错误描述
                */
           ReturnResult readJzqApnNameAndPwd(String zdljdz);

            /**
                * 设置集中器用户名和密码
                *
                * @param zdljdz   终端逻辑地址
                * @param name     用户名
                * @param passWord 密码
                * @return ReturnResult  :int code  0 成功  其他失败
                * :List<String> datas（code==0）:   size==1
                * 0:集中器返回帧的16进制字符串
                * :List<String> datas(code==其他):（size==1）
                * 0：错误描述
                */
           ReturnResult setJzqApnNameAndPwd(String zdljdz,String name,String passWord);

           /**
           * 读取集中器子网掩码和网关
           *
           * @param zdljdz 终端逻辑地址
            * @return ReturnResult  :int code  0 成功  其他失败
            * :List<String> datas（code==0）:   size==3
            * 0:集中器返回帧的16进制字符串
            * 1:子网掩码
            * 2.网关
            * :List<String> datas(code==其他):（size==1）
            * 0：错误描述
            */
           ReturnResult readTerminalIpAndPort(String zdljdz);

                /**
                * 设置集中器子网掩码和网关
                *
                * @param zdljdz   终端逻辑地址
                * @param ip     终端ip
                * @param subnetMask 子网掩码
                * @param gatewayAddress 网关
                * @return ReturnResult  :int code  0 成功  其他失败
                * :List<String> datas（code==0）:   size==1
                * 0:集中器返回帧的16进制字符串
                * :List<String> datas(code==其他):（size==1）
                * 0：错误描述
                */
           ReturnResult setTerminalIpAndPort(String zdljdz, String ip, String subnetMask, String gatewayAddress);


                /**
                * 读取集中器 F5终端上行通信消息认证参数
                *
                * @param zdljdz 终端逻辑地址
                * @return ReturnResult  :int code  0 成功  其他失败
                * :List<String> datas（code==0）:   size==3
                * 0:集中器返回帧的16进制字符串
                * 1:消息认证方案号
                * 2:消息认证方案参数
                * :List<String> datas(code==其他):（size==1）
                * 0:返回帧
                * 0：错误描述
                */
           ReturnResult readJzqUplinkParams(String zdljdz);
}
